#pragma once
#include <string>

enum DataType { kAll, kStrings, kHashes, kLists, kZSets, kSets };

struct KeyValue {
  std::string key;
  std::string value;
  bool operator==(const KeyValue& kv) const {
    return (kv.key == key && kv.value == value);
  }

  bool operator<(const KeyValue& kv) const { return key < kv.key; }
};

struct KeyInfo {
  uint64_t keys;
  uint64_t expires;
  uint64_t avg_ttl;
  uint64_t invaild_keys;
};

struct ScoreMember {
  double score;
  std::string member;
  bool operator==(const ScoreMember& sm) const {
    return (sm.score == score && sm.member == member);
  }
};